/**
 * @param {string} s
 * @param {string[]} words
 * @return {number[]}
 */
var findSubstring = function (s, words) {
    let map1 = {}
    let len = words.length
    let long = words[0].length
    let res = []
    for (let i = 0; i < len; i++) {
        let key = words[i]
        if (map1.hasOwnProperty(key)) {
            map1[key]++
        } else {
            map1[key] = 1
        }
    }
    console.log('map1:', map1)
    let start = 0, end = 0
    let map2 = {}
    for (let i = 0; i < s.length;) {
        let str = s.slice(i, i + long)
        console.log('str:', str)
        if (map1[str]) {
            map2[str] = map2[str] ? map2[str]++ : map2[str] = 1
            console.log('同：', str)
            start = i
            end = i + long
            for (let j = 0; j < len - 1; j++) {
                str = s.slice(end, end += long)
                // map2[str] = map2[str] ? map2[str]++ : 1
                map2[str] = map2[str] ? map2[str] + 1 : 1;
            }
            console.log('map2:', map2)
        }
        let flag = true
        for (let key of Object.keys(map1)) {
            if (map1[key] !== map2[key]) {
                flag = false
                break
            }
        }
        if (flag) {
            res.push(start)
        } 
        map2 = {}
        i++
    }
    return res

};
console.log(findSubstring("aaaaaaaaaaaaaa", ["aa","aa"]))